<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.20"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>JCSDK Objective-C API Reference for iOS/macOS: JCMediaDevice类 参考</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">JCSDK Objective-C API Reference for iOS/macOS
   &#160;<span id="projectnumber">2.3.3</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- 制作者 Doxygen 1.8.20 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'搜索');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',true,false,'search.php','搜索');
  $(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#pub-methods">构造函数</a> &#124;
<a href="#pub-static-methods">类方法</a> &#124;
<a href="#properties">属性</a> &#124;
<a href="interface_j_c_media_device-members.html">所有成员列表</a>  </div>
  <div class="headertitle">
<div class="title">JCMediaDevice类 参考<div class="ingroups"><a class="el" href="group___xE8_xAE_xBE_xE5_xA4_x87_xE6_xA8_xA1_xE5_x9D_x97.html">设备模块</a></div></div>  </div>
</div><!--header-->
<div class="contents">

<p><code>#import &lt;<a class="el" href="_j_c_media_device_8h_source.html">JCMediaDevice.h</a>&gt;</code></p>
<div class="dynheader">
类 JCMediaDevice 继承关系图:</div>
<div class="dyncontent">
 <div class="center">
  <img src="interface_j_c_media_device.png" alt=""/>
 </div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
构造函数</h2></td></tr>
<tr class="memitem:ab302cf2e643b76ec40968609d7304f55"><td class="memItemLeft" align="right" valign="top">(<a class="el" href="interface_j_c_media_device_video_canvas.html">JCMediaDeviceVideoCanvas</a> *__nullable)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_j_c_media_device.html#ab302cf2e643b76ec40968609d7304f55">startCameraVideo:</a></td></tr>
<tr class="separator:ab302cf2e643b76ec40968609d7304f55"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a37f57e8cad5b1eee77047ed9eb8dbd51"><td class="memItemLeft" align="right" valign="top">(<a class="el" href="interface_j_c_media_device_video_canvas.html">JCMediaDeviceVideoCanvas</a> *__nullable)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_j_c_media_device.html#a37f57e8cad5b1eee77047ed9eb8dbd51">startCameraVideo:view:</a></td></tr>
<tr class="separator:a37f57e8cad5b1eee77047ed9eb8dbd51"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aef1b8e413778008e2dec313e0b407cdf"><td class="memItemLeft" align="right" valign="top">(<a class="el" href="interface_j_c_media_device_video_canvas.html">JCMediaDeviceVideoCanvas</a> *__nullable)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_j_c_media_device.html#aef1b8e413778008e2dec313e0b407cdf">startVideo:renderType:</a></td></tr>
<tr class="separator:aef1b8e413778008e2dec313e0b407cdf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0ed0f22e1cb7b44f1839b22ae4847c58"><td class="memItemLeft" align="right" valign="top">(<a class="el" href="interface_j_c_media_device_video_canvas.html">JCMediaDeviceVideoCanvas</a> *__nullable)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_j_c_media_device.html#a0ed0f22e1cb7b44f1839b22ae4847c58">startVideo:renderType:view:</a></td></tr>
<tr class="separator:a0ed0f22e1cb7b44f1839b22ae4847c58"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac77ad46a4ac0a226b2da155f2f797fc0"><td class="memItemLeft" align="right" valign="top">(void)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_j_c_media_device.html#ac77ad46a4ac0a226b2da155f2f797fc0">stopVideo:</a></td></tr>
<tr class="separator:ac77ad46a4ac0a226b2da155f2f797fc0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a66c2c78f2c722a483c902d1e91512122"><td class="memItemLeft" align="right" valign="top">(bool)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_j_c_media_device.html#a66c2c78f2c722a483c902d1e91512122">startAudio</a></td></tr>
<tr class="separator:a66c2c78f2c722a483c902d1e91512122"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac169efc20dfed3266d93d3a700f33c72"><td class="memItemLeft" align="right" valign="top">(bool)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_j_c_media_device.html#ac169efc20dfed3266d93d3a700f33c72">stopAudio</a></td></tr>
<tr class="separator:ac169efc20dfed3266d93d3a700f33c72"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a45761d678b774b0dc275db3f8f01bf69"><td class="memItemLeft" align="right" valign="top">(bool)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_j_c_media_device.html#a45761d678b774b0dc275db3f8f01bf69">startCamera</a></td></tr>
<tr class="separator:a45761d678b774b0dc275db3f8f01bf69"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abd3c4c16bd84011a4d5b89e1fe74ac5e"><td class="memItemLeft" align="right" valign="top">(bool)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_j_c_media_device.html#abd3c4c16bd84011a4d5b89e1fe74ac5e">stopCamera</a></td></tr>
<tr class="separator:abd3c4c16bd84011a4d5b89e1fe74ac5e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a76b0a85f43b74b3d90c5e2c32ab60088"><td class="memItemLeft" align="right" valign="top">(bool)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_j_c_media_device.html#a76b0a85f43b74b3d90c5e2c32ab60088">switchCamera</a></td></tr>
<tr class="separator:a76b0a85f43b74b3d90c5e2c32ab60088"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6f72ec5fb1f5f0cca8585b12b09eb524"><td class="memItemLeft" align="right" valign="top">(bool)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_j_c_media_device.html#a6f72ec5fb1f5f0cca8585b12b09eb524">switchCamera:</a></td></tr>
<tr class="separator:a6f72ec5fb1f5f0cca8585b12b09eb524"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7793b267dc9c810772295275402fb02f"><td class="memItemLeft" align="right" valign="top">(void)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_j_c_media_device.html#a7793b267dc9c810772295275402fb02f">setCameraProperty:height:framerate:</a></td></tr>
<tr class="separator:a7793b267dc9c810772295275402fb02f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1d625bdf5aa2dbb422805152cdfb1a1b"><td class="memItemLeft" align="right" valign="top">(void)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_j_c_media_device.html#a1d625bdf5aa2dbb422805152cdfb1a1b">setScreenCaptureProperty:height:framerate:</a></td></tr>
<tr class="separator:a1d625bdf5aa2dbb422805152cdfb1a1b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9c1cdea77c0ba985fb8d4a134bc99d57"><td class="memItemLeft" align="right" valign="top">(bool)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_j_c_media_device.html#a9c1cdea77c0ba985fb8d4a134bc99d57">startVideoFile</a></td></tr>
<tr class="separator:a9c1cdea77c0ba985fb8d4a134bc99d57"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a50b25e3483943c3c1580eee83b847341"><td class="memItemLeft" align="right" valign="top">(void)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_j_c_media_device.html#a50b25e3483943c3c1580eee83b847341">setVideoFileFrame:format:width:height:</a></td></tr>
<tr class="separator:a50b25e3483943c3c1580eee83b847341"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a20af8ca01d0cb3c9e3bf9d0f96ffdff4"><td class="memItemLeft" align="right" valign="top">(void)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_j_c_media_device.html#a20af8ca01d0cb3c9e3bf9d0f96ffdff4">setVideoFileFrame:angle:mirror:</a></td></tr>
<tr class="separator:a20af8ca01d0cb3c9e3bf9d0f96ffdff4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7642ae134b19a7626d0f1c19e24ad3f4"><td class="memItemLeft" align="right" valign="top">(bool)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_j_c_media_device.html#a7642ae134b19a7626d0f1c19e24ad3f4">stopVideoFile</a></td></tr>
<tr class="separator:a7642ae134b19a7626d0f1c19e24ad3f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4cfd5ed9b3b9cdf14d15474f6c3db210"><td class="memItemLeft" align="right" valign="top">(void)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_j_c_media_device.html#a4cfd5ed9b3b9cdf14d15474f6c3db210">enableSpeaker:</a></td></tr>
<tr class="separator:a4cfd5ed9b3b9cdf14d15474f6c3db210"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3044b6a4a03a2e3d803df12389a9d3c8"><td class="memItemLeft" align="right" valign="top">(NSString *__nullable)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_j_c_media_device.html#a3044b6a4a03a2e3d803df12389a9d3c8">getAudioOutputType</a></td></tr>
<tr class="separator:a3044b6a4a03a2e3d803df12389a9d3c8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad7d3f47faa205d9b593c5112cf8847cc"><td class="memItemLeft" align="right" valign="top">(bool)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_j_c_media_device.html#ad7d3f47faa205d9b593c5112cf8847cc">isSpeakerOn</a></td></tr>
<tr class="separator:ad7d3f47faa205d9b593c5112cf8847cc"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
类方法</h2></td></tr>
<tr class="memitem:a85936ee95b592ac75252c97851f9cc3f"><td class="memItemLeft" align="right" valign="top">(<a class="el" href="interface_j_c_media_device.html">JCMediaDevice</a> *__nullable)&#160;</td><td class="memItemRight" valign="bottom">+ <a class="el" href="interface_j_c_media_device.html#a85936ee95b592ac75252c97851f9cc3f">create:callback:</a></td></tr>
<tr class="separator:a85936ee95b592ac75252c97851f9cc3f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2006a5a278ea92653d9d947112b44a60"><td class="memItemLeft" align="right" valign="top">(void)&#160;</td><td class="memItemRight" valign="bottom">+ <a class="el" href="interface_j_c_media_device.html#a2006a5a278ea92653d9d947112b44a60">destroy</a></td></tr>
<tr class="separator:a2006a5a278ea92653d9d947112b44a60"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="properties"></a>
属性</h2></td></tr>
<tr class="memitem:a3409eea29b0a4f1abb20236e49116532"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interface_j_c_media_device.html#a3409eea29b0a4f1abb20236e49116532">cameraOpen</a></td></tr>
<tr class="separator:a3409eea29b0a4f1abb20236e49116532"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4b87583f19d3ed15bf92cf518786e6ff"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interface_j_c_media_device.html#a4b87583f19d3ed15bf92cf518786e6ff">videoFileOpen</a></td></tr>
<tr class="separator:a4b87583f19d3ed15bf92cf518786e6ff"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa26bd62b1189821023178a91196f8af2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="interface_j_c_media_device_camera.html">JCMediaDeviceCamera</a> *__nullable&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interface_j_c_media_device.html#aa26bd62b1189821023178a91196f8af2">camera</a></td></tr>
<tr class="separator:aa26bd62b1189821023178a91196f8af2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a011a216aa0d0f861045554584fc6c273"><td class="memItemLeft" align="right" valign="top">NSArray&lt; <a class="el" href="interface_j_c_media_device_camera.html">JCMediaDeviceCamera</a> * &gt; *__nonnull&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interface_j_c_media_device.html#a011a216aa0d0f861045554584fc6c273">cameras</a></td></tr>
<tr class="separator:a011a216aa0d0f861045554584fc6c273"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4d1702816015e3db4ac78179df91a85a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="interface_j_c_media_device_camera.html">JCMediaDeviceCamera</a> *__nullable&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interface_j_c_media_device.html#a4d1702816015e3db4ac78179df91a85a">defaultCamera</a></td></tr>
<tr class="separator:a4d1702816015e3db4ac78179df91a85a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a204fb6e8e2092bcf294301b73e3547ff"><td class="memItemLeft" align="right" valign="top"><a class="el" href="interface_j_c_media_device_audio_param.html">JCMediaDeviceAudioParam</a> *_Nonnull&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interface_j_c_media_device.html#a204fb6e8e2092bcf294301b73e3547ff">audioParam</a></td></tr>
<tr class="separator:a204fb6e8e2092bcf294301b73e3547ff"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a73298097557a68e40cfa310d3904144b"><td class="memItemLeft" align="right" valign="top">NSString *__nonnull&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interface_j_c_media_device.html#a73298097557a68e40cfa310d3904144b">videoFileId</a></td></tr>
<tr class="separator:a73298097557a68e40cfa310d3904144b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4db1d01b84f9a27ca7dc5991e0c485f0"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interface_j_c_media_device.html#a4db1d01b84f9a27ca7dc5991e0c485f0">audioInterrupt</a></td></tr>
<tr class="separator:a4db1d01b84f9a27ca7dc5991e0c485f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5db9ccc9795dd55218664d6cd2dce1d9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___xE8_xAE_xBE_xE5_xA4_x87_xE6_xA8_xA1_xE5_x9D_x97.html#gac5a0d69d1e6c0b83597d53b160af6800">JCMediaDeviceVideoAngel</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interface_j_c_media_device.html#a5db9ccc9795dd55218664d6cd2dce1d9">videoAngle</a></td></tr>
<tr class="separator:a5db9ccc9795dd55218664d6cd2dce1d9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5435b161152de8a694d99907375de63b"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interface_j_c_media_device.html#a5435b161152de8a694d99907375de63b">useInternalAudioDeviceLogic</a></td></tr>
<tr class="separator:a5435b161152de8a694d99907375de63b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad37b4e6a77db2ffc8de0d21113df5234"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interface_j_c_media_device.html#ad37b4e6a77db2ffc8de0d21113df5234">audioStart</a></td></tr>
<tr class="separator:ad37b4e6a77db2ffc8de0d21113df5234"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aeb7d33d696dbec758c9bff68c6a035e9"><td class="memItemLeft" align="right" valign="top">NSArray&lt; <a class="el" href="interface_j_c_media_device_audio.html">JCMediaDeviceAudio</a> * &gt; *__nonnull&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interface_j_c_media_device.html#aeb7d33d696dbec758c9bff68c6a035e9">audioInputs</a></td></tr>
<tr class="separator:aeb7d33d696dbec758c9bff68c6a035e9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1af54718dbf3617ba4855666d136c900"><td class="memItemLeft" align="right" valign="top"><a class="el" href="interface_j_c_media_device_audio.html">JCMediaDeviceAudio</a> *__nullable&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interface_j_c_media_device.html#a1af54718dbf3617ba4855666d136c900">audioInput</a></td></tr>
<tr class="separator:a1af54718dbf3617ba4855666d136c900"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8c3448666d7011f7b51ed09d0e55e640"><td class="memItemLeft" align="right" valign="top">NSArray&lt; <a class="el" href="interface_j_c_media_device_audio.html">JCMediaDeviceAudio</a> * &gt; *__nonnull&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interface_j_c_media_device.html#a8c3448666d7011f7b51ed09d0e55e640">audioOutputs</a></td></tr>
<tr class="separator:a8c3448666d7011f7b51ed09d0e55e640"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab5af8195f04a9740cba045b778c158da"><td class="memItemLeft" align="right" valign="top"><a class="el" href="interface_j_c_media_device_audio.html">JCMediaDeviceAudio</a> *__nullable&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interface_j_c_media_device.html#ab5af8195f04a9740cba045b778c158da">audioOutput</a></td></tr>
<tr class="separator:ab5af8195f04a9740cba045b778c158da"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a42fe4885ba692bea1c809eae18d42f99"><td class="memItemLeft" align="right" valign="top">NSArray&lt; <a class="el" href="interface_j_c_media_device_window.html">JCMediaDeviceWindow</a> * &gt; *__nonnull&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interface_j_c_media_device.html#a42fe4885ba692bea1c809eae18d42f99">desktops</a></td></tr>
<tr class="separator:a42fe4885ba692bea1c809eae18d42f99"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa51768e835c6745da3b714e47309aa74"><td class="memItemLeft" align="right" valign="top">NSArray&lt; <a class="el" href="interface_j_c_media_device_window.html">JCMediaDeviceWindow</a> * &gt; *__nonnull&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interface_j_c_media_device.html#aa51768e835c6745da3b714e47309aa74">windows</a></td></tr>
<tr class="separator:aa51768e835c6745da3b714e47309aa74"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1ca37dc79ca030dea49f056676256a41"><td class="memItemLeft" align="right" valign="top"><a class="el" href="interface_j_c_media_device_window.html">JCMediaDeviceWindow</a> *__nullable&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interface_j_c_media_device.html#a1ca37dc79ca030dea49f056676256a41">screenshareWindow</a></td></tr>
<tr class="separator:a1ca37dc79ca030dea49f056676256a41"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3201f2362c57d147d000f67c9a03c600"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interface_j_c_media_device.html#a3201f2362c57d147d000f67c9a03c600">defaultSpeakerOn</a></td></tr>
<tr class="separator:a3201f2362c57d147d000f67c9a03c600"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">详细描述</h2>
<div class="textblock"><p>设备模块 </p><dl class="section note"><dt>注解</dt><dd>扬声器通过 <a class="el" href="interface_j_c_media_device.html">JCMediaDevice</a> 类中 <a class="el" href="interface_j_c_media_device.html#a4cfd5ed9b3b9cdf14d15474f6c3db210">enableSpeaker</a> 进行开关 </dd></dl>
</div><h2 class="groupheader">函数文档</h2>
<a id="a85936ee95b592ac75252c97851f9cc3f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a85936ee95b592ac75252c97851f9cc3f">&#9670;&nbsp;</a></span>create:callback:</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">+ (<a class="el" href="interface_j_c_media_device.html">JCMediaDevice</a>* __nullable) create: </td>
          <td></td>
          <td class="paramtype">(<a class="el" href="interface_j_c_client.html">JCClient</a> *__nonnull)&#160;</td>
          <td class="paramname"><em>client</em></td>
        </tr>
        <tr>
          <td class="paramkey">callback:</td>
          <td></td>
          <td class="paramtype">(id&lt; <a class="el" href="protocol_j_c_media_device_callback-p.html">JCMediaDeviceCallback</a> &gt; __nonnull)&#160;</td>
          <td class="paramname"><em>callback</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>创建 <a class="el" href="interface_j_c_media_device.html">JCMediaDevice</a> 对象</p>
<p><a class="el" href="interface_j_c_media_device.html">JCMediaDevice</a> 的所有接口函数，如无特殊说明，都建议在主线程调用</p>
<dl class="section note"><dt>注解</dt><dd><ul>
<li>调用此方法创建 <a class="el" href="interface_j_c_media_device.html">JCMediaDevice</a> 对象后，期间没有调用过 <a class="el" href="interface_j_c_media_device.html#a2006a5a278ea92653d9d947112b44a60">destroy</a> 方法销毁对象，然后又重复调用此方法，会直接返回第一次创建的 <a class="el" href="interface_j_c_media_device.html">JCMediaDevice</a> 对象</li>
<li>调用此方法前确保 <a class="el" href="interface_j_c_client.html">JCClient</a> 已完成初始化，即 <a class="el" href="interface_j_c_client.html#af428728decbaf19a2ac6552a07351a65">state</a> 状态值不等于 <a class="el" href="group___xE7_x99_xBB_xE5_xBD_x95_xE6_xA8_xA1_xE5_x9D_x97.html#gga485360c806cb3a83e41ac56a9ad7e709a5a6b582ba8275e39567b419ce05b7860">JCClientStateNotInit</a></li>
</ul>
</dd></dl>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">client</td><td><a class="el" href="interface_j_c_client.html">JCClient</a> 对象 </td></tr>
    <tr><td class="paramname">callback</td><td><a class="el" href="protocol_j_c_media_device_callback-p.html">JCMediaDeviceCallback</a> 对象，用于回调相关通知 </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>返回</dt><dd><a class="el" href="interface_j_c_media_device.html">JCMediaDevice</a> 对象 </dd></dl>
<dl class="exception"><dt>异常</dt><dd>
  <table class="exception">
    <tr><td class="paramname">JCClient、JCMediaDeviceCallback 任意一个参数传空就会调用失败</td><td></td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a2006a5a278ea92653d9d947112b44a60"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2006a5a278ea92653d9d947112b44a60">&#9670;&nbsp;</a></span>destroy</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">+ (void) destroy </td>
          <td></td>
          <td class="paramname"></td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>销毁 <a class="el" href="interface_j_c_media_device.html">JCMediaDevice</a> 对象</p>
<dl class="section note"><dt>注解</dt><dd>此方法为异步调用，所以在调用此方法后不能马上调用 create 方法去重新创建 <a class="el" href="interface_j_c_media_device.html">JCMediaDevice</a> 对象 </dd></dl>

</div>
</div>
<a id="a4cfd5ed9b3b9cdf14d15474f6c3db210"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4cfd5ed9b3b9cdf14d15474f6c3db210">&#9670;&nbsp;</a></span>enableSpeaker:</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">- (void) enableSpeaker: </td>
          <td></td>
          <td class="paramtype">(bool)&#160;</td>
          <td class="paramname"><em>enable</em></td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>开启/关闭扬声器，iOS 使用</p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">enable</td><td>开启或者关闭扬声器<ul>
<li>true: 开启</li>
<li>false: 关闭 </li>
</ul>
</td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a3044b6a4a03a2e3d803df12389a9d3c8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3044b6a4a03a2e3d803df12389a9d3c8">&#9670;&nbsp;</a></span>getAudioOutputType</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">- (NSString* __nullable) getAudioOutputType </td>
          <td></td>
          <td class="paramname"></td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>获得当前音频模式，目前只支持听筒和扬声器，iOS 使用 </p><dl class="section return"><dt>返回</dt><dd>音频模式 </dd></dl>

</div>
</div>
<a id="ad7d3f47faa205d9b593c5112cf8847cc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad7d3f47faa205d9b593c5112cf8847cc">&#9670;&nbsp;</a></span>isSpeakerOn</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">- (bool) isSpeakerOn </td>
          <td></td>
          <td class="paramname"></td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>扬声器是否已打开，iOS 使用</p><ul>
<li>true: 已打开</li>
<li>false: 未打开 </li>
</ul>

</div>
</div>
<a id="a7793b267dc9c810772295275402fb02f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7793b267dc9c810772295275402fb02f">&#9670;&nbsp;</a></span>setCameraProperty:height:framerate:</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">- (void) setCameraProperty: </td>
          <td></td>
          <td class="paramtype">(int)&#160;</td>
          <td class="paramname"><em>width</em></td>
        </tr>
        <tr>
          <td class="paramkey">height:</td>
          <td></td>
          <td class="paramtype">(int)&#160;</td>
          <td class="paramname"><em>height</em></td>
        </tr>
        <tr>
          <td class="paramkey">framerate:</td>
          <td></td>
          <td class="paramtype">(int)&#160;</td>
          <td class="paramname"><em>framerate</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>设置摄像头采集属性</p>
<p>在调用 <a class="el" href="interface_j_c_call_item.html#a8a238bbcc475e3678f727b6ba0cd8245">startSelfVideo</a> 方法或 <a class="el" href="interface_j_c_media_channel_participant.html#a8253f928291505c450d5d320ece3c15c">startVideo</a> 方法开启自身视频渲染前设置即可生效</p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">width</td><td>采集宽度，默认640 </td></tr>
    <tr><td class="paramname">height</td><td>采集高度，默认360 </td></tr>
    <tr><td class="paramname">frameRate</td><td>采集帧速率，默认24 </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a1d625bdf5aa2dbb422805152cdfb1a1b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1d625bdf5aa2dbb422805152cdfb1a1b">&#9670;&nbsp;</a></span>setScreenCaptureProperty:height:framerate:</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">- (void) setScreenCaptureProperty: </td>
          <td></td>
          <td class="paramtype">(int)&#160;</td>
          <td class="paramname"><em>width</em></td>
        </tr>
        <tr>
          <td class="paramkey">height:</td>
          <td></td>
          <td class="paramtype">(int)&#160;</td>
          <td class="paramname"><em>height</em></td>
        </tr>
        <tr>
          <td class="paramkey">framerate:</td>
          <td></td>
          <td class="paramtype">(int)&#160;</td>
          <td class="paramname"><em>framerate</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>设置屏幕共享采集属性</p>
<p>在调用 <a class="el" href="interface_j_c_media_channel.html#a79b28b8dada5450c5f25e2844962b7d0">enableScreenShare</a> 方法开启屏幕共享前设置即可生效</p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">width</td><td>采集宽度，默认1280 </td></tr>
    <tr><td class="paramname">height</td><td>采集高度，默认720 </td></tr>
    <tr><td class="paramname">frameRate</td><td>采集帧速率，默认10 </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a20af8ca01d0cb3c9e3bf9d0f96ffdff4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a20af8ca01d0cb3c9e3bf9d0f96ffdff4">&#9670;&nbsp;</a></span>setVideoFileFrame:angle:mirror:</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">- (void) setVideoFileFrame: </td>
          <td></td>
          <td class="paramtype">(CVPixelBufferRef __nonnull)&#160;</td>
          <td class="paramname"><em>srcFrame</em></td>
        </tr>
        <tr>
          <td class="paramkey">angle:</td>
          <td></td>
          <td class="paramtype">(int)&#160;</td>
          <td class="paramname"><em>angle</em></td>
        </tr>
        <tr>
          <td class="paramkey">mirror:</td>
          <td></td>
          <td class="paramtype">(int)&#160;</td>
          <td class="paramname"><em>mirror</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>向文件视频源逐帧添加视频数据</p>
<p>调用此方法时要保证文件视频源已开启</p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">srcFrame</td><td>视频数据 </td></tr>
    <tr><td class="paramname">angle</td><td>角度, 为 90 的倍数 </td></tr>
    <tr><td class="paramname">mirror</td><td>是否镜像，0 不镜像，1 镜像 </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a50b25e3483943c3c1580eee83b847341"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a50b25e3483943c3c1580eee83b847341">&#9670;&nbsp;</a></span>setVideoFileFrame:format:width:height:</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">- (void) setVideoFileFrame: </td>
          <td></td>
          <td class="paramtype">(NSData *__nonnull)&#160;</td>
          <td class="paramname"><em>srcFrame</em></td>
        </tr>
        <tr>
          <td class="paramkey">format:</td>
          <td></td>
          <td class="paramtype">(<a class="el" href="group___xE8_xAE_xBE_xE5_xA4_x87_xE6_xA8_xA1_xE5_x9D_x97.html#gaa89a37b09ffcd4fafd6ac4006214abd9">JCMediaDeviceVideoPixelFormat</a>)&#160;</td>
          <td class="paramname"><em>format</em></td>
        </tr>
        <tr>
          <td class="paramkey">width:</td>
          <td></td>
          <td class="paramtype">(int)&#160;</td>
          <td class="paramname"><em>width</em></td>
        </tr>
        <tr>
          <td class="paramkey">height:</td>
          <td></td>
          <td class="paramtype">(int)&#160;</td>
          <td class="paramname"><em>height</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>逐帧采集视频画面</p>
<p>调用此方法时要保证文件视频源已开启</p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">data</td><td>画面二进制数据 </td></tr>
    <tr><td class="paramname">format</td><td><a class="el" href="group___xE8_xAE_xBE_xE5_xA4_x87_xE6_xA8_xA1_xE5_x9D_x97.html#gaa89a37b09ffcd4fafd6ac4006214abd9">视频像素格式</a> </td></tr>
    <tr><td class="paramname">width</td><td>宽 </td></tr>
    <tr><td class="paramname">height</td><td>高 </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a66c2c78f2c722a483c902d1e91512122"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a66c2c78f2c722a483c902d1e91512122">&#9670;&nbsp;</a></span>startAudio</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">- (bool) startAudio </td>
          <td></td>
          <td class="paramname"></td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>启动音频</p>
<dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000006">弃用:</a></b></dt><dd>从 JCSDK-2.3.1-202009101 版本开始弃用，在通话连接中或者加入频道成功时，内部会自动调用此方法来启动音频</dd></dl>
<dl class="section return"><dt>返回</dt><dd>调用是否成功<ul>
<li>true：调用成功</li>
<li>false：调用失败 </li>
</ul>
</dd></dl>

</div>
</div>
<a id="a45761d678b774b0dc275db3f8f01bf69"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a45761d678b774b0dc275db3f8f01bf69">&#9670;&nbsp;</a></span>startCamera</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">- (bool) startCamera </td>
          <td></td>
          <td class="paramname"></td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>开启摄像头</p>
<dl class="section note"><dt>注解</dt><dd>调用此方法时需要保证默认摄像头不为空，即 <a class="el" href="interface_j_c_media_device.html#a4d1702816015e3db4ac78179df91a85a">defaultCamera</a> 不为空，否则将直接返回 false</dd></dl>
<dl class="section return"><dt>返回</dt><dd>调用是否成功<ul>
<li>true：正常执行调用流程<ul>
<li>若调用此方法前摄像头已打开，不会收到回调通知</li>
<li>若调用此方法前摄像头未打开，会收到 <a class="el" href="protocol_j_c_media_device_callback-p.html#a2a08a9fc361554aad9a0a49ef2c0a789">onCameraUpdate</a> 通知</li>
</ul>
</li>
<li>false：调用失败 </li>
</ul>
</dd></dl>

</div>
</div>
<a id="ab302cf2e643b76ec40968609d7304f55"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab302cf2e643b76ec40968609d7304f55">&#9670;&nbsp;</a></span>startCameraVideo:</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">- (<a class="el" href="interface_j_c_media_device_video_canvas.html">JCMediaDeviceVideoCanvas</a>* __nullable) startCameraVideo: </td>
          <td></td>
          <td class="paramtype">(<a class="el" href="group___xE8_xAE_xBE_xE5_xA4_x87_xE6_xA8_xA1_xE5_x9D_x97.html#ga22a1fb216a9252ce2ef1afb257e530f2">JCMediaDeviceRender</a>)&#160;</td>
          <td class="paramname"><em>type</em></td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>开始自身视频渲染</p>
<p>获取本端视频预览对象 JCMediaDeviceVideoCanvas，通过此对象能获得视图用于UI显示</p>
<dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000001">弃用:</a></b></dt><dd>从 JCSDK-2.3.1-202009101 版本开始弃用，一对一通话建议使用 <a class="el" href="interface_j_c_call_item.html#a8a238bbcc475e3678f727b6ba0cd8245">startSelfVideo</a> 方法代替，媒体频道建议使用 <a class="el" href="interface_j_c_media_channel_participant.html#a8253f928291505c450d5d320ece3c15c">startVideo</a> 方法代替</dd></dl>
<dl class="section note"><dt>注解</dt><dd>调用此方法时需要保证默认摄像头不为空，即 <a class="el" href="interface_j_c_media_device.html#a4d1702816015e3db4ac78179df91a85a">defaultCamera</a> 不为空，否则将直接返回 nil</dd></dl>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">type</td><td>渲染模式：<ul>
<li><a class="el" href="group___xE8_xAE_xBE_xE5_xA4_x87_xE6_xA8_xA1_xE5_x9D_x97.html#gga22a1fb216a9252ce2ef1afb257e530f2a1a379da30be1aa0d2e9ec2445891dd29">JCMediaDeviceRenderFullScreen</a> : 铺满窗口，会有裁剪</li>
<li><a class="el" href="group___xE8_xAE_xBE_xE5_xA4_x87_xE6_xA8_xA1_xE5_x9D_x97.html#gga22a1fb216a9252ce2ef1afb257e530f2a071059ec95589413a8e2aaa4cc25268d">JCMediaDeviceRenderFullContent</a> : 全图像显示，会有黑边</li>
<li><a class="el" href="group___xE8_xAE_xBE_xE5_xA4_x87_xE6_xA8_xA1_xE5_x9D_x97.html#gga22a1fb216a9252ce2ef1afb257e530f2a0c2cbd51feb1a24fbba312e4c2a41084">JCMediaDeviceRenderFullAuto</a> : 自适应 </li>
</ul>
</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>返回</dt><dd><ul>
<li><a class="el" href="interface_j_c_media_device_video_canvas.html">JCMediaDeviceVideoCanvas</a> 对象：开始自身视频渲染成功</li>
<li>nil：开始自身视频渲染失败 </li>
</ul>
</dd></dl>

</div>
</div>
<a id="a37f57e8cad5b1eee77047ed9eb8dbd51"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a37f57e8cad5b1eee77047ed9eb8dbd51">&#9670;&nbsp;</a></span>startCameraVideo:view:</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">- (<a class="el" href="interface_j_c_media_device_video_canvas.html">JCMediaDeviceVideoCanvas</a>* __nullable) <a class="el" href="interface_j_c_media_device.html#ab302cf2e643b76ec40968609d7304f55">startCameraVideo:</a> </td>
          <td></td>
          <td class="paramtype">(<a class="el" href="group___xE8_xAE_xBE_xE5_xA4_x87_xE6_xA8_xA1_xE5_x9D_x97.html#ga22a1fb216a9252ce2ef1afb257e530f2">JCMediaDeviceRender</a>)&#160;</td>
          <td class="paramname"><em>type</em></td>
        </tr>
        <tr>
          <td class="paramkey">view:</td>
          <td></td>
          <td class="paramtype">(<a class="el" href="_j_c_media_device_video_canvas_8h.html#a8681d2280b42cc393b64f1737ddbb032">JCView</a> *__nonnull)&#160;</td>
          <td class="paramname"><em>view</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>开始自身视频渲染</p>
<p>获取本端视频预览对象 JCMediaDeviceVideoCanvas，通过此对象能获得视图用于UI显示</p>
<dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000002">弃用:</a></b></dt><dd>从 JCSDK-2.3.1-202009101 版本开始弃用，一对一通话建议使用 <a class="el" href="interface_j_c_call_item.html#a8a238bbcc475e3678f727b6ba0cd8245">startSelfVideo</a> 方法代替，频道建议使用 <a class="el" href="interface_j_c_media_channel_participant.html#a8253f928291505c450d5d320ece3c15c">startVideo</a> 方法代替</dd></dl>
<dl class="section note"><dt>注解</dt><dd>调用此方法时需要保证默认摄像头不为空，即 <a class="el" href="interface_j_c_media_device.html#a4d1702816015e3db4ac78179df91a85a">defaultCamera</a> 不为空，否则将直接返回 nil</dd></dl>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">type</td><td>渲染模式：<ul>
<li><a class="el" href="group___xE8_xAE_xBE_xE5_xA4_x87_xE6_xA8_xA1_xE5_x9D_x97.html#gga22a1fb216a9252ce2ef1afb257e530f2a1a379da30be1aa0d2e9ec2445891dd29">JCMediaDeviceRenderFullScreen</a> : 铺满窗口，会有裁剪</li>
<li><a class="el" href="group___xE8_xAE_xBE_xE5_xA4_x87_xE6_xA8_xA1_xE5_x9D_x97.html#gga22a1fb216a9252ce2ef1afb257e530f2a071059ec95589413a8e2aaa4cc25268d">JCMediaDeviceRenderFullContent</a> : 全图像显示，会有黑边</li>
<li><a class="el" href="group___xE8_xAE_xBE_xE5_xA4_x87_xE6_xA8_xA1_xE5_x9D_x97.html#gga22a1fb216a9252ce2ef1afb257e530f2a0c2cbd51feb1a24fbba312e4c2a41084">JCMediaDeviceRenderFullAuto</a> : 自适应 </li>
</ul>
</td></tr>
    <tr><td class="paramname">view</td><td>渲染视图 </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>返回</dt><dd><ul>
<li><a class="el" href="interface_j_c_media_device_video_canvas.html">JCMediaDeviceVideoCanvas</a> 对象：开始自身视频渲染成功</li>
<li>nil：开始自身视频渲染失败 </li>
</ul>
</dd></dl>

</div>
</div>
<a id="aef1b8e413778008e2dec313e0b407cdf"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aef1b8e413778008e2dec313e0b407cdf">&#9670;&nbsp;</a></span>startVideo:renderType:</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">- (<a class="el" href="interface_j_c_media_device_video_canvas.html">JCMediaDeviceVideoCanvas</a>* __nullable) startVideo: </td>
          <td></td>
          <td class="paramtype">(NSString *__nonnull)&#160;</td>
          <td class="paramname"><em>videoSource</em></td>
        </tr>
        <tr>
          <td class="paramkey">renderType:</td>
          <td></td>
          <td class="paramtype">(<a class="el" href="group___xE8_xAE_xBE_xE5_xA4_x87_xE6_xA8_xA1_xE5_x9D_x97.html#ga22a1fb216a9252ce2ef1afb257e530f2">JCMediaDeviceRender</a>)&#160;</td>
          <td class="paramname"><em>type</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>开始其他端的视频渲染</p>
<p>获取其他端的视频预览对象 JCMediaDeviceVideoCanvas，通过此对象能获得视图用于UI显示</p>
<dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000003">弃用:</a></b></dt><dd>从 JCSDK-2.3.1-202009101 版本开始弃用，一对一通话建议使用 <a class="el" href="interface_j_c_call_item.html#a4ccc3e28f4277c02ad7cadddd23cbd00">startOtherVideo</a> 方法代替，频道建议使用 <a class="el" href="interface_j_c_media_channel_participant.html#a8253f928291505c450d5d320ece3c15c">startVideo</a> 方法代替</dd></dl>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">videoSource</td><td>渲染标识串，通过 <a class="el" href="interface_j_c_media_channel_participant.html">JCMediaChannelParticipant</a> 的 <a class="el" href="interface_j_c_media_channel_participant.html#a1ec79193c6acd0c6f8a1c72707a0a5ff">renderId</a> 方法和 <a class="el" href="interface_j_c_call_item.html">JCCallItem</a> 的 <a class="el" href="interface_j_c_call_item.html#a746ec443b0ebbd24bcfdcbdf81f91077">renderId</a> 方法可以得到 </td></tr>
    <tr><td class="paramname">type</td><td>渲染模式：<ul>
<li><a class="el" href="group___xE8_xAE_xBE_xE5_xA4_x87_xE6_xA8_xA1_xE5_x9D_x97.html#gga22a1fb216a9252ce2ef1afb257e530f2a1a379da30be1aa0d2e9ec2445891dd29">JCMediaDeviceRenderFullScreen</a> : 铺满窗口，会有裁剪</li>
<li><a class="el" href="group___xE8_xAE_xBE_xE5_xA4_x87_xE6_xA8_xA1_xE5_x9D_x97.html#gga22a1fb216a9252ce2ef1afb257e530f2a071059ec95589413a8e2aaa4cc25268d">JCMediaDeviceRenderFullContent</a> : 全图像显示，会有黑边</li>
<li><a class="el" href="group___xE8_xAE_xBE_xE5_xA4_x87_xE6_xA8_xA1_xE5_x9D_x97.html#gga22a1fb216a9252ce2ef1afb257e530f2a0c2cbd51feb1a24fbba312e4c2a41084">JCMediaDeviceRenderFullAuto</a> : 自适应 </li>
</ul>
</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>返回</dt><dd><ul>
<li><a class="el" href="interface_j_c_media_device_video_canvas.html">JCMediaDeviceVideoCanvas</a> 对象：开始自身视频渲染成功</li>
<li>nil：开始自身视频渲染失败 </li>
</ul>
</dd></dl>

</div>
</div>
<a id="a0ed0f22e1cb7b44f1839b22ae4847c58"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0ed0f22e1cb7b44f1839b22ae4847c58">&#9670;&nbsp;</a></span>startVideo:renderType:view:</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">- (<a class="el" href="interface_j_c_media_device_video_canvas.html">JCMediaDeviceVideoCanvas</a>* __nullable) startVideo: </td>
          <td></td>
          <td class="paramtype">(NSString *__nonnull)&#160;</td>
          <td class="paramname"><em>videoSource</em></td>
        </tr>
        <tr>
          <td class="paramkey">renderType:</td>
          <td></td>
          <td class="paramtype">(<a class="el" href="group___xE8_xAE_xBE_xE5_xA4_x87_xE6_xA8_xA1_xE5_x9D_x97.html#ga22a1fb216a9252ce2ef1afb257e530f2">JCMediaDeviceRender</a>)&#160;</td>
          <td class="paramname"><em>type</em></td>
        </tr>
        <tr>
          <td class="paramkey">view:</td>
          <td></td>
          <td class="paramtype">(<a class="el" href="_j_c_media_device_video_canvas_8h.html#a8681d2280b42cc393b64f1737ddbb032">JCView</a> *__nonnull)&#160;</td>
          <td class="paramname"><em>view</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>开始其他端的视频渲染</p>
<p>获取其他端的视频预览对象 JCMediaDeviceVideoCanvas，通过此对象能获得视图用于UI显示</p>
<dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000004">弃用:</a></b></dt><dd>从 JCSDK-2.3.1-202009101 版本开始弃用，一对一通话建议使用 <a class="el" href="interface_j_c_call_item.html#a4ccc3e28f4277c02ad7cadddd23cbd00">startOtherVideo</a> 方法代替，媒体频道建议使用 <a class="el" href="interface_j_c_media_channel_participant.html#a8253f928291505c450d5d320ece3c15c">startVideo</a> 方法代替</dd></dl>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">videoSource</td><td>渲染标识串，通过 <a class="el" href="interface_j_c_media_channel_participant.html">JCMediaChannelParticipant</a> 的 <a class="el" href="interface_j_c_media_channel_participant.html#a1ec79193c6acd0c6f8a1c72707a0a5ff">renderId</a> 方法和 <a class="el" href="interface_j_c_call_item.html">JCCallItem</a> 的 <a class="el" href="interface_j_c_call_item.html#a746ec443b0ebbd24bcfdcbdf81f91077">renderId</a> 方法可以得到 </td></tr>
    <tr><td class="paramname">type</td><td>渲染模式：<ul>
<li><a class="el" href="group___xE8_xAE_xBE_xE5_xA4_x87_xE6_xA8_xA1_xE5_x9D_x97.html#gga22a1fb216a9252ce2ef1afb257e530f2a1a379da30be1aa0d2e9ec2445891dd29">JCMediaDeviceRenderFullScreen</a> : 铺满窗口</li>
<li><a class="el" href="group___xE8_xAE_xBE_xE5_xA4_x87_xE6_xA8_xA1_xE5_x9D_x97.html#gga22a1fb216a9252ce2ef1afb257e530f2a071059ec95589413a8e2aaa4cc25268d">JCMediaDeviceRenderFullContent</a> : 全图像显示，会有黑边</li>
<li><a class="el" href="group___xE8_xAE_xBE_xE5_xA4_x87_xE6_xA8_xA1_xE5_x9D_x97.html#gga22a1fb216a9252ce2ef1afb257e530f2a0c2cbd51feb1a24fbba312e4c2a41084">JCMediaDeviceRenderFullAuto</a> : 自适应 </li>
</ul>
</td></tr>
    <tr><td class="paramname">view</td><td>渲染视图 </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>返回</dt><dd><a class="el" href="interface_j_c_media_device_video_canvas.html">JCMediaDeviceVideoCanvas</a> 对象 </dd></dl>

</div>
</div>
<a id="a9c1cdea77c0ba985fb8d4a134bc99d57"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9c1cdea77c0ba985fb8d4a134bc99d57">&#9670;&nbsp;</a></span>startVideoFile</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">- (bool) startVideoFile </td>
          <td></td>
          <td class="paramname"></td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>开启视频文件作为视频输入源</p>
<dl class="section note"><dt>注解</dt><dd>文件和摄像头作为视频输入源只能存在一种，如果当前摄像头已开启的话会关闭摄像头</dd></dl>
<dl class="section return"><dt>返回</dt><dd>调用是否成功<ul>
<li>true：正常执行调用流程<ul>
<li>若调用此方法时文件视频源已开启，则不会收到回调</li>
<li>若调用此方法时文件视频源还未开启，则会收到 <a class="el" href="protocol_j_c_media_device_callback-p.html#a2a08a9fc361554aad9a0a49ef2c0a789">onCameraUpdate</a> 回调</li>
</ul>
</li>
<li>false：调用失败，不会收到回调 </li>
</ul>
</dd></dl>

</div>
</div>
<a id="ac169efc20dfed3266d93d3a700f33c72"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac169efc20dfed3266d93d3a700f33c72">&#9670;&nbsp;</a></span>stopAudio</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">- (bool) stopAudio </td>
          <td></td>
          <td class="paramname"></td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>停止音频</p>
<dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000007">弃用:</a></b></dt><dd>从 JCSDK-2.3.1-202009101 版本开始弃用，在通话挂断时或者离开频道时，内部会自动调用此方法来停止音频</dd></dl>
<dl class="section return"><dt>返回</dt><dd>调用是否成功<ul>
<li>true：调用成功</li>
<li>false：调用失败 </li>
</ul>
</dd></dl>

</div>
</div>
<a id="abd3c4c16bd84011a4d5b89e1fe74ac5e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abd3c4c16bd84011a4d5b89e1fe74ac5e">&#9670;&nbsp;</a></span>stopCamera</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">- (bool) stopCamera </td>
          <td></td>
          <td class="paramname"></td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>关闭摄像头</p>
<dl class="section return"><dt>返回</dt><dd>调用是否成功<ul>
<li>true：正常执行调用流程<ul>
<li>调用此方法前摄像头已打开，不会收到回调通知</li>
<li>调用此方法前摄像头未打开，会收到 <a class="el" href="protocol_j_c_media_device_callback-p.html#a2a08a9fc361554aad9a0a49ef2c0a789">onCameraUpdate</a> 通知</li>
</ul>
</li>
<li>false：调用失败 </li>
</ul>
</dd></dl>

</div>
</div>
<a id="ac77ad46a4ac0a226b2da155f2f797fc0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac77ad46a4ac0a226b2da155f2f797fc0">&#9670;&nbsp;</a></span>stopVideo:</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">- (void) stopVideo: </td>
          <td></td>
          <td class="paramtype">(<a class="el" href="interface_j_c_media_device_video_canvas.html">JCMediaDeviceVideoCanvas</a> *__nonnull)&#160;</td>
          <td class="paramname"><em>canvas</em></td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>停止视频渲染</p>
<dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000005">弃用:</a></b></dt><dd>从 JCSDK-2.3.1-202009101 版本开始弃用，一对一通话建议使用 <a class="el" href="interface_j_c_call_item.html#a05db5c6f4fc3509fb98045a5785a82e4">stopSelfVideo</a> 和 <a class="el" href="interface_j_c_call_item.html#a255cdad4f611bbe86d54d40eb7252568">stopOtherVideo</a> 方法代替，媒体频道渲染建议使用 <a class="el" href="interface_j_c_media_channel_participant.html#a4f8ac14928ea95326be429ee4aee3e7c">stopVideo</a> 方法代替</dd></dl>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">canvas</td><td><a class="el" href="interface_j_c_media_device_video_canvas.html">JCMediaDeviceVideoCanvas</a> 对象，由 <a class="el" href="interface_j_c_media_device.html#aef1b8e413778008e2dec313e0b407cdf">startVideo</a> 和 <a class="el" href="interface_j_c_media_device.html#ab302cf2e643b76ec40968609d7304f55">startCameraVideo</a> 返回 </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a7642ae134b19a7626d0f1c19e24ad3f4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7642ae134b19a7626d0f1c19e24ad3f4">&#9670;&nbsp;</a></span>stopVideoFile</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">- (bool) stopVideoFile </td>
          <td></td>
          <td class="paramname"></td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>关闭逐帧采集画面</p>
<dl class="section return"><dt>返回</dt><dd>调用是否成功<ul>
<li>true：正常执行调用流程<ul>
<li>若调用此方法时文件视频源已关闭，不会收到回调</li>
<li>若调用此方法时文件视频源未关闭，则会收到 <a class="el" href="protocol_j_c_media_device_callback-p.html#a2a08a9fc361554aad9a0a49ef2c0a789">onCameraUpdate</a> 回调</li>
</ul>
</li>
<li>false：调用失败 </li>
</ul>
</dd></dl>

</div>
</div>
<a id="a76b0a85f43b74b3d90c5e2c32ab60088"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a76b0a85f43b74b3d90c5e2c32ab60088">&#9670;&nbsp;</a></span>switchCamera</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">- (bool) switchCamera </td>
          <td></td>
          <td class="paramname"></td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>切换摄像头</p>
<p>内部会根据当前摄像头类型来进行切换</p>
<ul>
<li>调用此方法时要保证摄像头已打开，否则将直接返回 false</li>
<li>设备拥有两个以上摄像头，否则将直接返回 true</li>
<li>满足以上两个条件后，内部会调用 <a class="el" href="interface_j_c_media_device.html#a6f72ec5fb1f5f0cca8585b12b09eb524">switchCamera:(JCMediaDeviceCamera *)camera</a> 方法并提供返回值</li>
</ul>
<dl class="section return"><dt>返回</dt><dd>调用是否成功<ul>
<li>true：调用成功</li>
<li>false：调用失败 </li>
</ul>
</dd></dl>

</div>
</div>
<a id="a6f72ec5fb1f5f0cca8585b12b09eb524"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6f72ec5fb1f5f0cca8585b12b09eb524">&#9670;&nbsp;</a></span>switchCamera:</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">- (bool) switchCamera: </td>
          <td></td>
          <td class="paramtype">(<a class="el" href="interface_j_c_media_device_camera.html">JCMediaDeviceCamera</a> *__nonnull)&#160;</td>
          <td class="paramname"><em>camera</em></td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>切换摄像头</p>
<p>调用此方法时需要保证摄像头已打开并且摄像头数大于0，否则将直接返回 false</p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">camera</td><td>摄像头 </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>调用是否成功<ul>
<li>true：正常执行调用流程<ul>
<li>摄像头个数为1，不会收到回调</li>
<li>摄像头个数大于1，会收到 <a class="el" href="protocol_j_c_media_device_callback-p.html#a2a08a9fc361554aad9a0a49ef2c0a789">onCameraUpdate</a> 通知</li>
</ul>
</li>
<li>false：调用失败，不会收到回调 </li>
</ul>
</dd></dl>

</div>
</div>
<h2 class="groupheader">属性说明</h2>
<a id="a1af54718dbf3617ba4855666d136c900"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1af54718dbf3617ba4855666d136c900">&#9670;&nbsp;</a></span>audioInput</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">- (<a class="el" href="interface_j_c_media_device_audio.html">JCMediaDeviceAudio</a>* __nullable) audioInput</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">read</span><span class="mlabel">write</span><span class="mlabel">nonatomic</span><span class="mlabel">strong</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>当前音频输入设备，mac 使用 </p>

</div>
</div>
<a id="aeb7d33d696dbec758c9bff68c6a035e9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aeb7d33d696dbec758c9bff68c6a035e9">&#9670;&nbsp;</a></span>audioInputs</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">- (NSArray&lt;<a class="el" href="interface_j_c_media_device_audio.html">JCMediaDeviceAudio</a>*&gt;* __nonnull) audioInputs</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">read</span><span class="mlabel">nonatomic</span><span class="mlabel">assign</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>音频输入设备列表，mac 使用 </p>

</div>
</div>
<a id="a4db1d01b84f9a27ca7dc5991e0c485f0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4db1d01b84f9a27ca7dc5991e0c485f0">&#9670;&nbsp;</a></span>audioInterrupt</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">- (bool) audioInterrupt</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">read</span><span class="mlabel">nonatomic</span><span class="mlabel">assign</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>是否声音被中断 </p>

</div>
</div>
<a id="ab5af8195f04a9740cba045b778c158da"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab5af8195f04a9740cba045b778c158da">&#9670;&nbsp;</a></span>audioOutput</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">- (<a class="el" href="interface_j_c_media_device_audio.html">JCMediaDeviceAudio</a>* __nullable) audioOutput</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">read</span><span class="mlabel">write</span><span class="mlabel">nonatomic</span><span class="mlabel">strong</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>当前音频输出设备，mac 使用 </p>

</div>
</div>
<a id="a8c3448666d7011f7b51ed09d0e55e640"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8c3448666d7011f7b51ed09d0e55e640">&#9670;&nbsp;</a></span>audioOutputs</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">- (NSArray&lt;<a class="el" href="interface_j_c_media_device_audio.html">JCMediaDeviceAudio</a>*&gt;* __nonnull) audioOutputs</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">read</span><span class="mlabel">nonatomic</span><span class="mlabel">assign</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>音频输出设备列表，mac 使用 </p>

</div>
</div>
<a id="a204fb6e8e2092bcf294301b73e3547ff"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a204fb6e8e2092bcf294301b73e3547ff">&#9670;&nbsp;</a></span>audioParam</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">- (<a class="el" href="interface_j_c_media_device_audio_param.html">JCMediaDeviceAudioParam</a>* _Nonnull) audioParam</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">read</span><span class="mlabel">write</span><span class="mlabel">nonatomic</span><span class="mlabel">strong</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>音频参数 </p>

</div>
</div>
<a id="ad37b4e6a77db2ffc8de0d21113df5234"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad37b4e6a77db2ffc8de0d21113df5234">&#9670;&nbsp;</a></span>audioStart</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">- (bool) audioStart</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">read</span><span class="mlabel">nonatomic</span><span class="mlabel">assign</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>音频是否启动</p>
<p>一般正式开启通话前需要调用此接口</p>
<ul>
<li>true：调用成功</li>
<li>false：调用失败 </li>
</ul>

</div>
</div>
<a id="aa26bd62b1189821023178a91196f8af2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa26bd62b1189821023178a91196f8af2">&#9670;&nbsp;</a></span>camera</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">- (<a class="el" href="interface_j_c_media_device_camera.html">JCMediaDeviceCamera</a>* __nullable) camera</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">read</span><span class="mlabel">nonatomic</span><span class="mlabel">strong</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>当前使用的摄像头 </p>

</div>
</div>
<a id="a3409eea29b0a4f1abb20236e49116532"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3409eea29b0a4f1abb20236e49116532">&#9670;&nbsp;</a></span>cameraOpen</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">- (bool) cameraOpen</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">read</span><span class="mlabel">nonatomic</span><span class="mlabel">assign</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>摄像头是否已打开</p><ul>
<li>true： 已打开</li>
<li>false： 未打开 </li>
</ul>

</div>
</div>
<a id="a011a216aa0d0f861045554584fc6c273"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a011a216aa0d0f861045554584fc6c273">&#9670;&nbsp;</a></span>cameras</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">- (NSArray&lt;<a class="el" href="interface_j_c_media_device_camera.html">JCMediaDeviceCamera</a>*&gt;* __nonnull) cameras</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">read</span><span class="mlabel">nonatomic</span><span class="mlabel">assign</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>摄像头列表 </p>

</div>
</div>
<a id="a4d1702816015e3db4ac78179df91a85a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4d1702816015e3db4ac78179df91a85a">&#9670;&nbsp;</a></span>defaultCamera</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">- (<a class="el" href="interface_j_c_media_device_camera.html">JCMediaDeviceCamera</a>* __nullable) defaultCamera</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">read</span><span class="mlabel">write</span><span class="mlabel">nonatomic</span><span class="mlabel">strong</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>默认摄像头 </p>

</div>
</div>
<a id="a3201f2362c57d147d000f67c9a03c600"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3201f2362c57d147d000f67c9a03c600">&#9670;&nbsp;</a></span>defaultSpeakerOn</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">- (bool) defaultSpeakerOn</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">read</span><span class="mlabel">write</span><span class="mlabel">nonatomic</span><span class="mlabel">assign</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>没有插入耳机或外接蓝牙时是否默认开启扬声器，默认关闭，iOS 使用</p><ul>
<li>true 默认开启</li>
<li>false 默认不开启 </li>
</ul>

</div>
</div>
<a id="a42fe4885ba692bea1c809eae18d42f99"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a42fe4885ba692bea1c809eae18d42f99">&#9670;&nbsp;</a></span>desktops</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">- (NSArray&lt;<a class="el" href="interface_j_c_media_device_window.html">JCMediaDeviceWindow</a>*&gt;* __nonnull) desktops</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">read</span><span class="mlabel">nonatomic</span><span class="mlabel">assign</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>桌面列表，mac 使用 </p>

</div>
</div>
<a id="a1ca37dc79ca030dea49f056676256a41"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1ca37dc79ca030dea49f056676256a41">&#9670;&nbsp;</a></span>screenshareWindow</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">- (<a class="el" href="interface_j_c_media_device_window.html">JCMediaDeviceWindow</a>* __nullable) screenshareWindow</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">read</span><span class="mlabel">write</span><span class="mlabel">nonatomic</span><span class="mlabel">strong</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>屏幕分享的窗口，mac 使用 </p>

</div>
</div>
<a id="a5435b161152de8a694d99907375de63b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5435b161152de8a694d99907375de63b">&#9670;&nbsp;</a></span>useInternalAudioDeviceLogic</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">- (bool) useInternalAudioDeviceLogic</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">read</span><span class="mlabel">write</span><span class="mlabel">nonatomic</span><span class="mlabel">assign</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>是否使用内部音频设备逻辑 内部音频设备逻辑如下：<br  />
 1.打开扬声器 - 使用扬声器输出声音 <br  />
 2.连上蓝牙耳机 - 使用蓝牙耳机输出声音，如果扬声器开着则关闭扬声器 <br  />
 3.插入耳机 - 使用耳机输出声音，如果扬声器开着则关闭扬声器 <br  />
 4.蓝牙耳机和有线耳机以最后连上的作为输出 <br  />
 5.关闭扬声器 - (蓝牙耳机或有线耳机) 优于 听筒 <br  />
</p>
<ul>
<li>true: 使用内部音频设备逻辑</li>
<li>false: 不使用内部音频设备逻辑 </li>
</ul>

</div>
</div>
<a id="a5db9ccc9795dd55218664d6cd2dce1d9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5db9ccc9795dd55218664d6cd2dce1d9">&#9670;&nbsp;</a></span>videoAngle</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">- (<a class="el" href="group___xE8_xAE_xBE_xE5_xA4_x87_xE6_xA8_xA1_xE5_x9D_x97.html#gac5a0d69d1e6c0b83597d53b160af6800">JCMediaDeviceVideoAngel</a>) videoAngle</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">read</span><span class="mlabel">write</span><span class="mlabel">nonatomic</span><span class="mlabel">assign</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>视频渲染窗体角度</p>
<ul>
<li><a class="el" href="group___xE8_xAE_xBE_xE5_xA4_x87_xE6_xA8_xA1_xE5_x9D_x97.html#ggac5a0d69d1e6c0b83597d53b160af6800adae40396eae994e841f2534ead4fe97b">JCMediaDeviceVideoAngelAuto</a> : 自动</li>
<li><a class="el" href="group___xE8_xAE_xBE_xE5_xA4_x87_xE6_xA8_xA1_xE5_x9D_x97.html#ggac5a0d69d1e6c0b83597d53b160af6800a637b06e5813b8e7c0ed16f52a8137062">JCMediaDeviceVideoAngel0</a> : 0°</li>
<li><a class="el" href="group___xE8_xAE_xBE_xE5_xA4_x87_xE6_xA8_xA1_xE5_x9D_x97.html#ggac5a0d69d1e6c0b83597d53b160af6800a48a1ee7b63101262a99288ba6ce53f75">JCMediaDeviceVideoAngel90</a> : 90°</li>
<li><a class="el" href="group___xE8_xAE_xBE_xE5_xA4_x87_xE6_xA8_xA1_xE5_x9D_x97.html#ggac5a0d69d1e6c0b83597d53b160af6800aeea31d422284b5052fc26e4ca45a2ba7">JCMediaDeviceVideoAngel180</a> : 180°</li>
<li><a class="el" href="group___xE8_xAE_xBE_xE5_xA4_x87_xE6_xA8_xA1_xE5_x9D_x97.html#ggac5a0d69d1e6c0b83597d53b160af6800a1056d20348cfcde3f4d75483527f3ec3">JCMediaDeviceVideoAngel270</a> : 270° </li>
</ul>

</div>
</div>
<a id="a73298097557a68e40cfa310d3904144b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a73298097557a68e40cfa310d3904144b">&#9670;&nbsp;</a></span>videoFileId</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">- (NSString* __nonnull) videoFileId</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">read</span><span class="mlabel">nonatomic</span><span class="mlabel">strong</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>视频文件作为本地视频源的渲染标识 </p>

</div>
</div>
<a id="a4b87583f19d3ed15bf92cf518786e6ff"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4b87583f19d3ed15bf92cf518786e6ff">&#9670;&nbsp;</a></span>videoFileOpen</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">- (bool) videoFileOpen</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">read</span><span class="mlabel">nonatomic</span><span class="mlabel">assign</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>文件播放是否打开</p><ul>
<li>true： 已打开文件播放</li>
<li>false： 未打开文件播放 </li>
</ul>

</div>
</div>
<a id="aa51768e835c6745da3b714e47309aa74"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa51768e835c6745da3b714e47309aa74">&#9670;&nbsp;</a></span>windows</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">- (NSArray&lt;<a class="el" href="interface_j_c_media_device_window.html">JCMediaDeviceWindow</a>*&gt;* __nonnull) windows</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">read</span><span class="mlabel">nonatomic</span><span class="mlabel">assign</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>窗口列表，mac 使用 </p>

</div>
</div>
<hr/>该类的文档由以下文件生成:<ul>
<li>JCSDKOC/JCSDKOC/JCMediaDevice/<a class="el" href="_j_c_media_device_8h_source.html">JCMediaDevice.h</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
制作者&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
</small></address>
</body>
</html>
